package com.ergou.easylive.admin.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.tags.Tag;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Arrays;

/**
 * OpenAPI配置类
 *
 * @author Er-Gou
 * @date 2025-09-16
 */
@Configuration
public class OpenApiConfig {

    /**
     * 配置OpenAPI
     *
     * @return OpenAPI
     */
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("EasyLive管理端API文档")
                        .description("EasyLive")
                        .version("1.0.0")
                        .contact(new Contact()
                                .name("Er-Gou")
                                .email("contact@github.com"))
                        .license(new License()
                                .name("Apache 2.0")
                                .url("https://www.apache.org/licenses/LICENSE-2.0.html")
                        )
                )
                .tags(Arrays.asList(
                        new Tag()
                                .name("用户认证")
                                .description("用户登录、注册、权限验证等认证相关接口"),
                        new Tag()
                                .name("系统管理")
                                .description("系统用户管理、权限管理等系统管理相关接口"),
                        new Tag()
                                .name("公共接口")
                                .description("验证码、文件上传等公共功能接口")
                ));
    }
}
